#ifndef CIRCLE_H
#define CIRCLE_H
#include "Shape.h"

/**
 * Class Definition for a circle
 * @author: Brad Rippe (brippe@fullcoll.edu)
 */
class Circle: public Shape {
public:
	/**
	 * Default constructor for a Circle
	 */
	Circle();

	/**
	 * One parameter constructor for a Circle
	 * @param aRadius the radius of the Circle
	 */
	Circle(double aRadius);

	/**
	 * Constructor creates a Circle
	 * @param aRadius the radius of the Circle
	 * @param aColor the Circle's color
	 * @param aFilled determines if the Circle is filled
	 */
	Circle(double aRadius, string aColor, bool aFilled);

	/**
	 * Gets the Circle's radius
	 * @return the circle's radius
	 */
	double getRadius();
	

	/**
	 * Sets the Circle's radius
	 * @param aRadius the circle's new radius
	 */
	void setRadius(double aRadius);
	
	/**
	 * Gets the circle's area
	 * @return the circle's area
	 */
	double getArea();
	
	/**
	 * Gets the circle's perimeter
	 * @return the circle's perimeter
	 */
	double getPerimeter();
	
	/**
	 * Gets the circle's diameter
	 * @return the circle's diameter
	 */
	double getDiameter();
	
	/**
	 * Returns a string representation of the Circle
	 * @return a string representation
	 */
	string toString();

private:
	double mRadius;
}; 

#endif
